﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 面向对象练习
{
    internal class Lecture
    {
        //构造方法
        public Lecture(int maxCount) 
        { 
            MAX_COUNT = maxCount;

            students = new Student[MAX_COUNT];   
        }
        //当前课堂的主讲老师对象，null代表还没有给老师对象分配内存
        private Teacher teacher = null;

        //设置当前哪个老师来上课
        public void setTeacher(Teacher teacher)
        {
            this.teacher = teacher;
        }

        //当前课堂要有学生
        //1 课堂容量（int）
        //get: 需要提供，让外界知道当前课堂有多少座位
        //set: 不需要提供，外界无法更改当前课堂的座位数
        private int MAX_COUNT = 0;

        public int MaxCount
        {
            get { return MAX_COUNT; }
        }
        //2 当前学生数量（int）
        //get: 需要提供，外界可以知晓当前课堂人数
        //set：不需要提供，外界不可以随意设置学生数量
        private int currentCount = 0;

        public int CurrentCount
        {
            get { return currentCount; }
        }
        //3 学生数组，用于存放当前来上课的学生

        private Student[] students = null;

        //返回bool，
        //true：表示学生加入成功
        //false：表示学生加入失败
        public bool AddStudent(Student student)
        {
            if (currentCount >= MAX_COUNT)
            {
                return false;
            }
            students[currentCount] = student;
            currentCount++;

            return true;
        }

        public void StartLecture()
        {
            //老师点名
            teacher.SayNames(students,currentCount);
        }
    }
}
